package com.cyan.note.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 用户实体类（统一用户表）
 * 支持三种角色：super_admin、manager、worker
 * 
 * @author ZhangzhenYu
 * @since 2025-01-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class User extends BaseEntity {

    /**
     * 用户账号（登录名）
     */
    private String username;

    /**
     * 密码（加密存储）
     */
    private String password;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 头像URL
     */
    private String avatar;

    /**
     * 用户角色
     * super_admin: 超级管理员
     * manager: 店长
     * worker: 打手
     */
    private String role;

    /**
     * 所属店铺ID（仅店长和打手有值）
     */
    private Long shopId;

    /**
     * 账户状态
     * active: 正常
     * frozen: 冻结
     * resigned: 离职
     */
    private String status;

    /**
     * 最后登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastLoginAt;

    /**
     * 最后登录IP
     */
    private String lastLoginIp;

    /**
     * 备注说明
     */
    private String remark;
}